package cn.wzx.core.translation.aop.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author wzx
 * @date 2024/11/7 17:29
 * @description: 翻译注解 在字段上添加 从数据库中查找数据
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TransData {

    /**
     * @author wzx
     * @date: 2024/11/7 17:47
     * @param: []
     * @return: java.lang.String
     * @description: 默认从数据库表中翻译 还可以从redis中查找 (redis)
     */
    String type() default "mysql";

    /**
     * @author wzx
     * @date: 2024/11/7 17:41
     * @param: []
     * @return: java.lang.String
     * @description: 目标源 要去查找的表
     */
    Class<?> targetClass();

    /**
     * @author wzx
     * @date: 2024/11/7 17:42
     * @param: []
     * @return: java.lang.String[]
     * @description: 目标字段 对应表的字段 最好是id(有唯一性的最好)
     */
    String SqlField();

    /**
     * @author wzx
     * @date: 2024/11/11 11:44
     * @param: []
     * @return: java.lang.String
     * @description: redis key
     */
    String redisField();

    /**
     * @author wzx
     * @date: 2024/11/7 17:44
     * @param: []
     * @return: java.lang.String
     * @description: 被翻译的字段
     */
    String translateField();
}
